package com.blb.zy_community.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 房屋绑定记录表 
 * </p>
 *
 * @author 二组
 * @since 2023-06-18
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("zy_owner_room_record")
public class ZyOwnerRoomRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 房屋绑定记录id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableId(value = "record_id")
    private Long recordId;

    /**
     * 房屋绑定id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private String ownerRoomId;

    /**
     * 小区id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long communityId;

    /**
     * 楼栋id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long buildingId;

    /**
     * 单元id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long unitId;

    /**
     * 房间id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long roomId;

    /**
     * 业主id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long ownerId;

    /**
     * 业主类型
     */
    private String ownerType;

    /**
     * 绑定状态（0审核中 1绑定 2审核失败,3解绑）
     */
    private String roomStatus;

    /**
     * 审核意见
     */
    private String recordAuditOpinion;

    /**
     * 审核人类型
     */
    private String recordAuditType;

    /**
     * 创建人id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long createById;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 备注
     */
    private String remark;

    @TableField(exist = false)
    private ZyOwnerRoom zyOwnerRooms;
    @TableField(exist = false)
    private ZyOwner zyOwners;

    @TableField(exist = false)
    private String createName;

    public Long getRecordId() {
        return recordId;
    }

    public void setRecordId(Long recordId) {
        this.recordId = recordId;
    }

    public String getOwnerRoomId() {
        return ownerRoomId;
    }

    public void setOwnerRoomId(String ownerRoomId) {
        this.ownerRoomId = ownerRoomId;
    }

    public Long getCommunityId() {
        return communityId;
    }

    public void setCommunityId(Long communityId) {
        this.communityId = communityId;
    }

    public Long getBuildingId() {
        return buildingId;
    }

    public void setBuildingId(Long buildingId) {
        this.buildingId = buildingId;
    }

    public Long getUnitId() {
        return unitId;
    }

    public void setUnitId(Long unitId) {
        this.unitId = unitId;
    }

    public Long getRoomId() {
        return roomId;
    }

    public void setRoomId(Long roomId) {
        this.roomId = roomId;
    }

    public Long getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(Long ownerId) {
        this.ownerId = ownerId;
    }

    public String getOwnerType() {
        return ownerType;
    }

    public void setOwnerType(String ownerType) {
        this.ownerType = ownerType;
    }

    public String getRoomStatus() {
        return roomStatus;
    }

    public void setRoomStatus(String roomStatus) {
        this.roomStatus = roomStatus;
    }

    public String getRecordAuditOpinion() {
        return recordAuditOpinion;
    }

    public void setRecordAuditOpinion(String recordAuditOpinion) {
        this.recordAuditOpinion = recordAuditOpinion;
    }

    public String getRecordAuditType() {
        return recordAuditType;
    }

    public void setRecordAuditType(String recordAuditType) {
        this.recordAuditType = recordAuditType;
    }

    public Long getCreateById() {
        return createById;
    }

    public void setCreateById(Long createById) {
        this.createById = createById;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public ZyOwnerRoom getZyOwnerRooms() {
        return zyOwnerRooms;
    }

    public void setZyOwnerRooms(ZyOwnerRoom zyOwnerRooms) {
        this.zyOwnerRooms = zyOwnerRooms;
    }

    public ZyOwner getZyOwners() {
        return zyOwners;
    }

    public void setZyOwners(ZyOwner zyOwners) {
        this.zyOwners = zyOwners;
    }

    public String getCreateName() {
        return createName;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

    public ZyOwnerRoomRecord(Long recordId, String ownerRoomId, Long communityId, Long buildingId, Long unitId, Long roomId, Long ownerId, String ownerType, String roomStatus, String recordAuditOpinion, String recordAuditType, Long createById, String createBy, LocalDateTime createTime, String updateBy, LocalDateTime updateTime, String remark) {
        this.recordId = recordId;
        this.ownerRoomId = ownerRoomId;
        this.communityId = communityId;
        this.buildingId = buildingId;
        this.unitId = unitId;
        this.roomId = roomId;
        this.ownerId = ownerId;
        this.ownerType = ownerType;
        this.roomStatus = roomStatus;
        this.recordAuditOpinion = recordAuditOpinion;
        this.recordAuditType = recordAuditType;
        this.createById = createById;
        this.createBy = createBy;
        this.createTime = createTime;
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "ZyOwnerRoomRecord{" +
                "recordId=" + recordId +
                ", ownerRoomId='" + ownerRoomId + '\'' +
                ", communityId=" + communityId +
                ", buildingId=" + buildingId +
                ", unitId=" + unitId +
                ", roomId=" + roomId +
                ", ownerId=" + ownerId +
                ", ownerType='" + ownerType + '\'' +
                ", roomStatus='" + roomStatus + '\'' +
                ", recordAuditOpinion='" + recordAuditOpinion + '\'' +
                ", recordAuditType='" + recordAuditType + '\'' +
                ", createById=" + createById +
                ", createBy='" + createBy + '\'' +
                ", createTime=" + createTime +
                ", updateBy='" + updateBy + '\'' +
                ", updateTime=" + updateTime +
                ", remark='" + remark + '\'' +
                ", zyOwnerRooms=" + zyOwnerRooms +
                ", zyOwners=" + zyOwners +
                ", createName='" + createName + '\'' +
                '}';
    }
}
